export { };
var COS = require('cos-wx-sdk-v5');
const urls = require('./urls')
var cos = new COS({
    // ForcePathStyle: true, // 如果使用了很多存储桶，可以通过打开后缀式，减少配置白名单域名数量，请求时会用地域域名
    getAuthorization: function (options: any, callback: any) {
        // 异步获取临时密钥
        wx.request({
            url: urls.cos_sts_url,
            data: {
                bucket: options.Bucket,
                region: options.Region,
            },
            dataType: 'json',
            success: function (result) {
                var data: any = result.data;
                var credentials = data && data.credentials;
                if (!data || !credentials) return console.error('credentials invalid');
                callback({
                    TmpSecretId: credentials.tmpSecretId,
                    TmpSecretKey: credentials.tmpSecretKey,
                    XCosSecurityToken: credentials.sessionToken,
                    // 建议返回服务器时间作为签名的开始时间，避免用户浏览器本地时间偏差过大导致签名错误
                    StartTime: data.startTime, // 时间戳，单位秒，如：1580000000
                    ExpiredTime: data.expiredTime, // 时间戳，单位秒，如：1580000900
                });
            }
        });
    }
});

interface post_object_call_back {
    (err: any, data: any): void;
};

let postObject = function (key: string, file_path: any, call_back: post_object_call_back) {
    cos.postObject({
        Bucket: 'medical-1310344124', /* 必须 */
        Region: 'ap-shanghai',    /* 必须 */
        Key: key,              /* 必须 */
        // FilePath: filePath,
        FilePath: file_path,
    }, call_back);
}

exports.postObject = postObject;

interface get_object_call_back {
    (err: any, data: any): void;
};

let getObject = function (key: string, call_back: get_object_call_back) {
    cos.getObject({
        Bucket: 'medical-1310344124', /* 必须 */
        Region: 'ap-shanghai',    /* 必须 */
        Key: key,              /* 必须 */
    }, call_back);
}

exports.getObject = getObject;

// cos.getObjectUrl({
//     Bucket: 'examplebucket-1250000000', /* 填入您自己的存储桶，必须字段 */
//     Region: 'COS_REGION',  /* 存储桶所在地域，例如ap-beijing，必须字段 */
//     Key: '1.jpg',  /* 存储在桶里的对象键（例如1.jpg，a/b/test.txt），必须字段 */
//     Sign: true
// }, function (err, data) {
//     if (err) return console.log(err);
//     wx.downloadFile({
//         url: data.Url, // 需要加 url 的域名作为下载白名单
//         success (res) {
//             console.log(res.statusCode, res.tempFilePath);
//         },
//         fail: function (err) {
//             console.log(err);
//         },
//     });
// });

let getObjectUrl = function (key: string, call_back: get_object_call_back) {
    cos.getObjectUrl({
        Bucket: 'medical-1310344124', /* 必须 */
        Region: 'ap-shanghai',    /* 必须 */
        Key: key,              /* 必须 */
        Sign: true
    }, call_back);
}

exports.getObjectUrl = getObjectUrl;
